#include <iostream>
#include <vector>
#include <algorithm>
#include <unordered_map>
using namespace std;

//构建乘积数组，leetcode-238：除自身以外数组的乘积，动态规划
vector<int> multiply(const vector<int> &A)
{
    int len = A.size();
    vector<int> res(len, 1);
    int l = 1, r = 1;
    for (int i = 0; i < len; ++i)
    {
        res[i] *= l;
        res[len - 1 - i] *= r; //左右同时开始更新res里的值，每个位置会被更新两次
        l *= A[i];
        r *= A[len - 1 - i]; //同时累计两侧的乘积
    }
    return res;
}

void test()
{
}

int main()
{
    test();
    return 0;
}